Incrementally designing electronic forms and hierarchical schemas

ABSTRACT

A system and method that enables a designer to build electronic forms and corresponding hierarchical schemas are described. Displays of hierarchical schemas, electronic forms, and components used to build the hierarchical schemas and electronic forms are provided to the designer. The designer selects components and arranges them on a display to visually build an electronic form. As the form is built, the corresponding hierarchical schema is incrementally updated to reflect changes made to the electronic form.

RELATED APPLICATIONS

This application is a divisional of and claims priority to U.S. patentapplication Ser. No. 10/395,505, filed Mar. 24, 2003, the disclosure ofwhich is incorporated by reference herein.

TECHNICAL FIELD

This invention relates to designing electronic forms and hierarchicalschemas, and more particularly, to a user-friendly way to incrementallydesign electronic forms and hierarchical schemas.

BACKGROUND

Extensible markup language (XML) is increasingly becoming the preferredformat for transferring information. XML is a tag-based hierarchicallanguage that is extremely rich in terms of the information that it canbe used to represent. For example, XML can be used to representinformation spanning the spectrum from semi-structured information (suchas one would find in a word processing document) to generally structuredinformation (such as that which is contained in a table). XML iswell-suited for many types of communication includingbusiness-to-business and client-to-server communication. For moreinformation on XML, XSLT, and XML Schema, the reader is referred to thefollowing documents which are the work of, and available from the W3C(World Wide Web consortium): XML 1.0 second edition specification; XSLTransformations (XSLT) Version 1.0; XML Schema Part 1: Structures; andXML Schema Part 2: Datatypes.

Before information can be transferred, however, it must first becollected. Electronic forms are commonly used to collect information.One way to collect information and have it also in an XML document is tohave the electronic form correspond to an XML schema. By so doing, theinformation entered into an electronic form can be stored in an XMLdocument, which conforms to the XML schema. Having information within anXML document that conforms to an XML schema allows the XML document tobe understood and validated when transferred to others having access tothe XML schema.

Currently, to begin creating an electronic form corresponding to an XMLschema, a skilled programmer can write an XML schema and then, once theXML schema is written, abstract how information conforming to thatschema will be entered. With the abstraction of how the information willbe entered, the programmer can then create an electronic form that mapsdata-entry fields to that schema. The programmer can map data-entryfields to that schema using an XML path language (XPath), such as theW3C-standard XML path language (information about which is currentlyavailable from W3C at www.w3.org/TR/xpath). This process of creating anelectronic form, however, is time consuming and can require a programmerof significant skill.

To create these electronic forms, the programmer often needs asignificant understanding of HTML and XML Schemas. The programmer, tobuild an electronic form with even moderately complex data-entryfields-such as repeating data-entry fields—often needs to understand howthese data-entry fields are represented in the schema, HTML file, andXML data file. Also, to build a relatively simple electronic form withsimple data-entry fields the programmer often needs to understand howHTML, XML, and XML Schemas are structured and how they are interrelated.Thus, to build one of these electronic forms, a programmer often musthave significant experience and skill.

For these reasons, creating electronic forms and corresponding schemascan be difficult, time consuming, and require a programmer ofsignificant skill.

SUMMARY

In the following description and figures, a design application enablinga designer to incrementally build an electronic form and correspondinghierarchical schema is disclosed. This design application can alsoenable a designer to change an electronic form or correspondinghierarchical schema and simultaneously view the change in the electronicform and/or corresponding hierarchical schema.

In one implementation, the design application enables a designer tobuild an electronic form and corresponding hierarchical schema byincrementally building the electronic form and correspondinghierarchical schema using components.

In another implementation, the design application enables a designer toset the hierarchical nature of a hierarchical schema by the designerplacing components in certain areas of a screen.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system with a display screen, computer, anduser-input devices. The system implements a method for designingelectronic forms.

FIG. 2 illustrates an exemplary screen display showing a hierarchicalschema display area and an electronic form in the form-design area beingdesigned with a method for designing electronic forms.

FIG. 3 illustrates an exemplary component display area.

FIG. 4 is a flow diagram of an exemplary process for generatingelectronic forms and hierarchical schemas.

FIG. 5 illustrates an exemplary screen display showing a componentdisplay area and a blank form-design area.

FIG. 6 illustrates an exemplary screen display showing part of ahierarchical schema display area, a component display area, and aform-design area.

FIG. 7 illustrates an exemplary screen display showing part of ahierarchical schema display area, a component display area, and aform-design area.

FIG. 8 illustrates an exemplary screen display showing a hierarchicalschema display area and a form-design area.

FIG. 9 illustrates an exemplary screen display showing a hierarchicalschema display area, a form-design area, a component context menu, and astructure submenu.

FIG. 10 illustrates an exemplary hierarchical schema display area, achange inquiry window and an add window.

FIG. 11 is a flow diagram of an exemplary process for building ahierarchical schema.

FIG. 12 illustrates an exemplary screen display showing a hierarchicalschema display area and a form-design area.

FIG. 13 is a block diagram of a computer system that is capable ofsupporting an electronic-form and hierarchical-schema generationprocess.

The same numbers are used throughout the disclosure and figures toreference like components and features.

DETAILED DESCRIPTION

The following disclosure describes a user-friendly way to designelectronic forms and corresponding hierarchical schemas using componentsand a form-designing area of a display. Components are presented in anarea of a display screen, usually graphically, such as with anarrangement of icons. Icons representing each component are asimplification so that a designer can more easily understand the purposeof and choose from a list of components. A designer can choose eachcomponent that he or she wishes to include in an electronic form.

The designer can choose a component, such as by clicking on an iconrepresenting a component, to be placed on a form-designing area. Theform-designing area is presented in an area of a display screen, usuallyappearing as a blank page, such as is often done when viewing a newdocument in a word-processing application. Components placed in aform-designing area can be manipulated by a designer to allow thedesigner to make an electronic form look and feel like the designerdesires. Parts of a hierarchical schema, called schema parts, correspondto the components in the form-design area, and can also be manipulatedby the designer. This hierarchical schema can be represented as an XMLfile or as a data store. When represented as an XML file, a data storecan also later be inferred from it.

With each new component added or modified, and in some cases each changemade to an electronic form or hierarchical schema, the electronic formand corresponding hierarchical schema are altered to reflect thatchange. This incremental building of an electronic form and hierarchicalschema, and the fact that they are linked so that a change to one canalmost instantly be reflected in the other, allows a designer toquickly, easily, and intuitively create electronic forms andcorresponding hierarchical schemas.

For discussion purposes, the visual representation of the components,hierarchical schema, and electronic form are described in the context ofa single computer, a set of user-input devices, and a single displayscreen having areas for displaying a representation of the components,the electronic form, and the hierarchical schema. The display screen,computer, and user-input devices will be described first, followed by adiscussion of the techniques in which these and other devices can beused.

System Architecture

FIG. 1 shows an exemplary implementation of various devices and anapplication that can be used to facilitate the creation of electronicforms from a list of components.

FIG. 1 shows an exemplary system 100, which includes a screen 102,user-input devices 104, and a computer 106.

The user-input devices 104 can include any device allowing a computer toreceive a designer's preferences, such as a keyboard 114, otherdevice(s) 116, and a mouse 118. The other input devices 116 can includea touch screen, a voice-activated input device, a track ball, and anyother device that allows the system 100 to receive input from adesigner. The computer 106 includes a processing unit 120 and randomaccess memory and/or read-only memory 122 including applications, suchas an operating system 124 and a form and a design application 126,which includes a user interface 128. The computer 106 communicates witha designer through the screen 102 and the user-input devices 104.

The screen 102 includes three displays or screen areas: a hierarchicalschema display area 108; a component display area 110; and a form-designarea 112. With these areas, a designer can see a representation of andselect a component from a list of components. He can also see arepresentation of the component in an electronic form and schema partscorresponding to the component in a representation of the hierarchicalschema.

FIG. 2 shows an exemplary design screen 200, including an example of theform-design area 112 and the hierarchical schema display area 108(entitled “Data Source”). Partially within the form-design area 112 is adesign view of an electronic form 202. The electronic form 202 is adesign view because it is in the process of being constructed and so caninclude information for the designer not intended for viewing by a dataentry user. This electronic form 202 is being built from componentschosen by a designer. The components chosen create the data-entry fieldsshown in the electronic form 202. These data-entry fields correspond toparts of a hierarchical schema, the parts being shown through the iconsdisplayed in the hierarchical schema display area 108. The iconsdisplayed are a representation of part of a file of hierarchical schemaarranged into a tree structure.

FIG. 3 shows an example of components from which a designer can choose,which are displayed here at the component display area 110. Thesevarious components include a text box 302, a rich text box 304, adrop-down list box 306, a list box 308, a date picker 310, a check box312, an option button 314, a section 316, an optional section 318, arepeating section 320, a repeating table 322, a bulleted list 324, anumbered list 326, a plain list 328, a button 330, and hyperlink 332.Other components can be included as well. As described in further detailbelow, each of these components represents a data-entry field that canbe added to an electronic form.

With the listed components and other components the system 100 enables adesigner to build a hierarchical schema and an electronic form with manydifferent types of components, allowing for many different possibletypes of data-entry fields, such as the electronic form 202 in theform-design area 112 of FIG. 2. The process used to build an electronicform and hierarchical schema from components will be set forth ingreater detail below.

The above devices and applications are merely representative, and otherknown devices and applications may be substituted for or added to thoseshown in FIG. 1. One example of another known device that can besubstituted for those shown in FIG. 1 is the device shown in FIG. 13.Other examples include portable, handheld, or wireless devices.

Techniques for Building Forms and Hierarchical Schemas

Overview

A system, such as the system 100 of FIG. 1, displays components to adesigner. The designer can choose from the components to graphically andeasily build an electronic form and a corresponding hierarchical schema.The system 100 can also incrementally build an electronic form andhierarchical schema with each new component the designer adds, whichallows the designer to see the electronic form and/or hierarchicalschema grow with each new component chosen. The designer may also changecomponents existing in the electronic form, the change to each beingincrementally reflected by the system 100.

FIG. 4 shows a process 400 for generating an electronic form and acorresponding hierarchical schema. The process 400 is illustrated as aseries of blocks representing individual operations or acts performed bythe system 100. The process 400 may be implemented in any suitablehardware, software, firmware, or combination thereof. In the case ofsoftware and firmware, the process 400 represents a set of operationsimplemented as computer-executable instructions stored in the memory 122and executable by the processing unit 120.

Displaying Components and Form-Design Area

At block 402, the user interface 128 displays components and aform-design area. It does so to enable a designer to graphically designan electronic form.

FIG. 5 shows a design screen 500 created by the user interface 128,having an example of the component display area 110 and a blank exampleof the form-design area 112. The form-design area 112 is displayed tomake it easy for a designer without typical programming skills to createan electronic form and corresponding hierarchical schema.

To make it easy, the user interface 128 can provide an editingexperience to a designer similar to that commonly provided inword-processing systems. The user interface 128 can, for instance, worklike a word-processing system by providing similar font controls andoptions. In FIG. 5, for example, the user interface 128 displays theform-design area 112 looking like a page from a word-processingapplication, here a blank, white page. It can also display commonly usedicons that represent operations that a designer can choose to perform,such as the font being used (in FIG. 5, Verdana, size 10),bold/underline/italic options, and the like. These word-processing iconscan be displayed in many different ways, including as shown in aword-processing icon display 502 of FIG. 5.

Also, as stated elsewhere herein, changes made by the designer to theform-design area 112 can be reflected in the form-design area 112instantaneously (from the perspective of the designer), further makingthe design process similar to a typical word-processing experience. Byso doing, the user interface 128 makes designing an electronic formsimpler and more intuitive for a person skilled in word-processing.

The components are displayed by the user interface 128 in the componentdisplay area 110 to make it easy for a designer without extensiveknowledge of components to be able to understand what each of them canrepresent in an electronic form. To show what each component represents,the user interface 128 displays icons and/or text to inform thedesigner, such as with the icons and text set forth in the componentdisplay area 110 set forth in FIGS. 3 and 5. In FIG. 3, for example, thetext box 302 includes an icon (i.e., a symbol) and text describing whata text box component represents. This icon shows a designer that, shouldbe choose to include a text box component in his electronic form, hewill have a data-entry field in which a user of the electronic form willbe permitted to input text. Likewise, the text describing the text box302 (“Text Box”) is also descriptive.

With the component display area 110 and the form-design area 112displayed, the designer can begin to build an electronic form andcorresponding hierarchical schema. He can continue to build theelectronic form and hierarchical schema by adding components, but canalso alter the electronic form and hierarchical schema by alteringexisting components. This process of building and altering is shown as adesign sub-process 403, which includes blocks 404 to 412. Thesub-process 403 includes blocks used to describe the action andinteraction of the designer and the system 100. When the designer hasfinished with the electronic form and hierarchical schema, the designapplication 126 produces the resulting electronic form and hierarchicalschema (block 414). The process 403 and the block 414 will be describedin greater detail below.

When the component display area 110 and the form-design area 112 arepresented, the designer can pick a component from the list of componentsin the component display area 110 for insertion into the form-designarea 112 (block 404). The designer can pick from components in variousways, including through the mouse 118, the other devices 116 (such as atouch screen, track ball, voice-activation, and the like), and throughthe keyboard 114, which are shown in FIG. 1. To grant flexibility to thedesigner, the system 100 enables the designer to move the component inthe form-design area 112 to where she desires.

A designer can pick a component, for example, by dragging and dropping(from the component display area 116) a component's icon onto aform-design area 112 shown in FIG. 5. The designer can pick a componentto drag and drop with various devices, such as with the mouse 118 orcommands entered through the keyboard 114. In FIG. 5, the designerclicks on the icon and text for the text box 302 to select it.

How an icon for a component looks may not exactly indicate how it willlook in an electronic form, as icons are too small to be exact. Rather,icons are designed to indicate the look and/or function of thedata-entry fields that choosing the component will create.

FIG. 6 shows an exemplary screen display 600 showing what the designapplication 126 creates after a designer selects the text box 302 inFIG. 5 (also shown in FIG. 6). In this example, the system 100 creates atext box data-entry field 602 which looks like a gray box for entry oftext and is labeled “String 1:”, in response to the designer'sselection. The design application 126 enables the designer to continuebuilding his electronic form by selecting components, thereby creatingdata-entry fields.

Building an Electronic Form and Hierarchical Schema

Once the system 100 receives a selection of a component and theplacement for the component, the system 100 can identify which componentwas selected, identify the placement for that component on theform-design area 112, build a hierarchical schema and electronic formbased on the component chosen and its location, display the electronicform and/or the hierarchical schema, and, when the designer is finished,produce the resulting electronic form and hierarchical schema. Thesetasks are set forth in blocks 406, 408, 410, and 414 of FIG. 4, whichwill be described below.

In block 406, the design application 126 identifies which component wasselected. The system 100 can access and/or contain many components,either from local or remote sources. Some of these components are setforth (via icons and text) in the component display area 110 shown inFIGS. 3, 5, 6, and 7.

Also in the block 406, the design application 126 identifies where acomponent is placed in the form-design area 112. The placement of thecomponent can alter the structure of a corresponding hierarchicalschema. How the placement of a component can alter the hierarchicalschema's structure will be set forth in greater detail below.

If; for example, a designer chooses the text box 302 from the componentdisplay area 110 of FIG. 5, and places the text box 302 in the upperleft corner of the form-design area 112, the design application 126 willidentify the component and its placement. In this example, the designapplication 126 will identify that the component chosen was the text box302 and the placement was a particular spot in the upper left corner ofthe form-design area 112. With this information, the system 100 proceedsto build the electronic form and hierarchical schema, which will bedescribed in part using FIGS. 5 and 6.

In block 408, the design application 126 changes an electronic form andcorresponding hierarchical schema based on a component selected. When acomponent is added, as has been described in part above, the designapplication 126 changes the hierarchical schema and electronic form bybuilding in the added component. When an existing component is altered(discussed in greater detail below), the design application 126 changesthe electronic form and hierarchical schema to reflect that alteration.

The structure of each component placed into the form-design area 112 isreflected in a corresponding hierarchical schema. The structure or codeadded to the hierarchical schema for each component selected is called aschema part. Each schema part governs the information added (such as bya data-entry user of the electronic form built by the design application126) into each data-entry field in an electronic form that correspondsto the same component for which the schema part corresponds. A check boxcomponent's schema part, for instance, allows only the following values:true, false, 0, or 1 (by default).

Thus, a hierarchical schema governs how information is handled that isinput into an electronic form for which it corresponds. Because ahierarchical schema includes the structure of each component chosen, thestructure of each chosen component affects the structure of thehierarchical schema. For example, the following components, when addedto an electronic form, will add a schema part (when using an XML Schema)having the following code to a hierarchical schema corresponding to theelectronic form:

Component name Schema Part's Code Text Box <element name=”field#”type=”string”/> Rich Text Box <element name=”field#”> <complexTypemixed=”true”> <sequence> <any minOccurs=”0” maxOccurs=”unbounded”namespace=”http://www.w3.org/1999/xhtml” processContents=”lax” /></sequence> </complexType> </element> Check Box <element name=”field#”type=”boolean”/> List Box <element name=”field#” type=”string”/>Drop-Down List Box <element name=”field#” type=”string”/> Option Button<element name=”field#” type=”string”/> Date Picker <elementname=”field#” type=”date”/> Picture (linked) <element name=”field#”type=”anyURI”/> Picture (inline) <element name=”field#”type=”base64Binary”/> List (plain, numbered, or <element name=”group#”>bulleted) <complexType> <sequence> <element name=”field#” type=”string”maxOccurs=”unbounded”/> </sequence> </complexType> </element> Section,and Optional <element name=”group#”> Section <complexType> <!-- EMPTYCONTAINER --> </complexType> </element> Repeating Section <elementname=”group#”> <complexType> <sequence> <element name=”group#”maxOccurs=”unbounded”> <complexType> <!-- EMPTY CONTAINER --></complexType> </element> </sequence> </complexType> </element>Repeating Table <element name=”group#”> <complexType> <elementname=”group#” maxOccurs=”unbounded”> <complexType> <sequence>  <elementname=”field#” type=”string”/>  <element name=”field#” type=”string”/> <element name=”field#” type=”string”/>  <!-- Etc. for each column --></sequence> </complexType> </element> </complexType> </element> Note:The number of columns is used to determine the number of “field#”sadded. Button, Expression Box, None Hyperlink

Note that all of the above “element” elements also have the attributevalue “minOccurs=0”, but it has been omitted for clarity. Also note thatthe pound sign (#) represents a number to make each element name unique.For example: field1, field2, and field3.

For the above example, when a component is added to the form-designscreen 112, the system 100 will generate a hierarchical schema with aschema part including the above code.

Likewise, each component built into an electronic form governs how thecomponent is displayed and information within it handled. Each componentbuilt into an electronic form, for instance, governs the look, display,orientation, and size of data-entry field(s), as well as how and whereinformation entered into these data-entry field(s) is mapped, includingto a document governed by a corresponding hierarchical schema.

The set of components available for building the electronic form can beextensible. A developer, by specifying the criteria above (for instance,the look, display, orientation, whether it allows nested components, andso forth) can create a new component that a designer can use to build anelectronic form. A developer-created component, like the pre-existingcomponents, can have an appropriate associated schema part from which tobuild a corresponding hierarchical schema.

Once the system 100 changes the hierarchical schema and electronic form(block 408), it proceeds to block 410 to display the electronic form andhierarchical schema, or to block 414, to complete the process andproduce the electronic form and hierarchical schema. Block 410 will bediscussed first below, followed later by a discussion of block 414.

In the block 410, the user interface 128 displays the electronic formand/or hierarchical schema. Hierarchical schemas can be represented invarious ways, including by visually showing the hierarchical structureof the hierarchical schema. One example of this is the indentations ofthe hierarchical schema set forth in the hierarchical schema displayarea 108 of FIG. 2.

Electronic forms can be displayed (to a designer or user) throughvarious techniques, including by transforming the hierarchical schema orits data file into an electronic form. In one implementation, the system100 creates a display for an electronic form by applying an applicationwritten in a transformation language onto a hierarchical schema or itsdata file written in a machine language. This creates a renderinglanguage document written in a rendering language which can be used tocreate the display. By way of example, the transformation language caninclude CSS or XSLT, the machine language XML, and the renderinglanguage HTML or XHTML.

Electronic forms can be represented in various ways. The user interface128 can display a design view of an electronic form to a designer tomake it easy for a designer to understand the structure of theelectronic form, or can show the electronic form without additionalinformation. A design view of an electronic form can mimic theelectronic form that will be seen by a user, such as set forth inform-design area 112 of FIG. 2. The design view can show componentsbuilt into an electronic form with additional information showingdetails about the data-entry field or fields corresponding to thecomponents to aid a designer in understanding the components in theelectronic form and altering the electronic form.

The user interface 128 can also display the electronic form andhierarchical schema in order for the designer to assess the electronicform and hierarchical schema after each change made by the designer.When the designer can quickly see the effect of his changes, thedesigner can more easily build an electronic form and hierarchicalschema matching the designer's intended results. Once the electronicform is displayed, such as in the form-design area 112, and thehierarchical schema is displayed (if desired) in the hierarchical schemadisplay area 108, the designer can continue to make changes or end theprocess. Ending the process will be discussed as part of the block 414,described below.

Whether the user interface 128 displays the electronic form or theelectronic form and hierarchical schema, the display should show changesmade by a designer, such as adding a data-entry field and schema part byselecting and/or inserting a new component.

Continuing the example above (where a designer chooses the text box 302from the component display area 110 of FIG. 5 and places the text box302 in the upper left corner of the form-design area 112), the designapplication 126 will build an electronic form and hierarchical schemabased on the identity and placement of the component. Using theexemplary code set forth above, the design application 126 can build ahierarchical schema with a schema part including the code: <elementname=“string1” type=“string”/>. This code can be displayed on the screen102, but because most designers are more comfortable with a graphicaldisplay, the schema part can be displayed as an icon and text, such aswith a schema part string1 604 of FIG. 6.

Also in this example, the design application 126 builds an electronicform with a text box component and displays it as set forth in FIG. 6,with a text box data-entry field 602 in the form-design area 112.

One of the advantages of the design application 126, and the method itemploys, is that the electronic form and hierarchical schema can bebuilt incrementally. That is to say, with each component chosen, or insome implementations with each other action taken that will affect theconstruction of the electronic form and hierarchical schema, theelectronic form and hierarchical schema are altered. This incrementalismallows a designer to quickly see how the electronic form andhierarchical schema are changing with each change made by the designer.The designer does not have to work on either a form or a schema and thensave the form or schema to see how the corresponding schema or formlooks or performs. Instead, as the designer makes a change, it isreflected in the electronic form and hierarchical schema. This makesdesigning an electronic form and hierarchical schema easy and intuitive.

In one implementation, the design application 126 can reflect eachchange made by a designer to both the electronic form and hierarchicalschema so quickly that the designer sees it in real time, regardless ofwhether the change was made to the electronic form by altering theform-design area 112 or to the hierarchical schema by altering thehierarchical schema display area 110. By so doing, the designer can moreeasily design electronic forms and hierarchical schemas.

Once a component has been added (or altered, discussed below), thedesign application 126 displays the form and hierarchical schema as setforth above. With the new change shown, the design application 126continues to enable the designer to add components to the electronicform, returning to block 404, or alter an existing component, block 412.

If the designer chooses to add another component, the design application126 enables him to do so in a manner similar to picking the firstcomponent as described above. The electronic form 202 of FIG. 2 is onesuch example of an electronic form built from many components.

FIG. 7 shows an exemplary screen display 700 showing the continuedbuilding of an electronic form. Here, the designer chose anothercomponent (the check box 312 of FIG. 6) to add to the electronic formand hierarchical schema shown in FIG. 6. In response to the designer'schoice, the design application 126 added a Boolean box 702. As shown inthe screen display 700, the Boolean box 702 looks like a small check box(which can be filled with a check mark or left empty by a user) and islabeled “Boolean 1”. Also in response to the designer's choice, thedesign application 126 altered the hierarchical schema to include aBoolean schema part 704 (labeled “boolean1”) corresponding to theBoolean box 702.

FIG. 8 shows an exemplary design screen 800 showing the continuedbuilding of an electronic form. The design screen 800 shows theelectronic form and hierarchical schema from FIGS. 6 and 7, and theresults of the designer continuing to choose components. Through thisprocess of adding components to the form-design area 112, a designer canbuild everything from a simple electronic form, such as shown in FIG. 6,to a moderately complex form, such as shown FIG. 8, to a large, complexform, such as shown in FIG. 2. As the design application 126 builds anelectronic form, it builds a corresponding hierarchical schema. FIG. 2shows an example of a hierarchical schema, displayed in hierarchicalschema display area 108 of FIG. 2, corresponding to an electronic form,in this case the electronic form 202 of FIG. 2.

A designer can simply make a change, like adding a component, to theelectronic form or hierarchical schema and see the change applied toboth the electronic form and hierarchical schema. In this sense, theelectronic form and hierarchical schema are actively linked. This activelinkage makes designing and changing electronic forms and hierarchicalschemas quicker, easier, and more intuitive.

The design application 126 links the electronic form and thehierarchical schema by mapping each component within an electronic formto each schema part in the corresponding hierarchical schema. In oneimplementation, the design application 126 maps them with XPathpointers.

In the block 412, the design application 126 enables a designer toselect and alter existing components included in an electronic form andhierarchical schema. The design application 126 allows the designer tointuitively and easily alter the electronic form and hierarchicalschema, such as by including editing tools familiar to designers thatknow word-processing techniques. A designer can change a componentstylistically (such as the font, color, size, and the like) andstructurally (such as by changing a text box to a Boolean box, andwhether or to which other components the component governs or issubordinate). A designer can make these changes also by altering how acomponent (such as one displayed as a data-entry field) is representedon an electronic form. For example, a designer can click on a componenton the form-design screen 112, change the style, move it, delete it, andthe like. As the designer makes changes, the design application 126alters the hierarchical schema to continue to correspond to the alteringelectronic form.

FIG. 8 shows the exemplary design screen 800, which provides a designview of an electronic form and its corresponding hierarchical schema,shown in the design area 112 and the hierarchical schema display area108, respectively. To enable the designer to make changes to acomponent, the design application 126 (through the user interface 128)enables the designer to click on components displayed in the design viewof the electronic form. One such component, a text box data-entry field802 (labeled “String 5”), is shown as an example. Once the designerselects a component, in this example the text box data-entry field 802,the design application 126 provides the designer with multiple optionsto change the data-entry field. As seen in a design screen 900(described below), the design application 126 provides options in a waycomfortable to a designer familiar with common word-processingtechniques and icons. If the designer clicked on the text box data-entryfield 802 of FIG. 8, the design application 126 can provide multiplepop-up menus of options for the designer.

FIG. 9 sets forth the exemplary design screen 900 including multipleways in which the design application 126 provides options for adesigner. These include a component context menu 902 and a structuresubmenu 904. In this example, the design application 126 enables thedesigner to change the electronic form and hierarchical schema bychanging a representation of a component in the form-design area 112(such as a data-entry field or accompanying graphics and text). Also,the design application 126 enables the designer to cut the component andmove it (through selection and deleting or dragging the component), andchange its font, borders, shading, and other style changes (through thecomponent context menu 902), as well as change its structure (throughthe structure submenu 904). In this example, the designer changes thecomponent by changing the structure of a data-entry field correspondingto the component (the text box data-entry field 802) into a date pickerdata-entry field by selecting a date picker component 906.

Also in the block 412, the design application 126 enables a designer toalter a schema part directly through selecting it from a hierarchicalschema. It can do so by allowing the designer to change an electronicform indirectly by making a change to the hierarchical schema. Thedesign application 126 enables this because, while many designers mayprefer to build an electronic form and hierarchical schema by changingan electronic form through a form-design screen, such as the designscreen 112, some designers will be familiar and comfortable enough withhierarchical schemas to change them through a representative display ofthe hierarchical schema, such as the hierarchical schema display area108. In this way, the designer can alter or add schema parts in thehierarchical schema, which may be associated with components reflectedin the electronic form. Once the designer has made a change, the designapplication 126 changes the electronic form and hierarchical schema toreflect the alteration (block 408).

FIG. 10 shows an example of the hierarchical schema display area 108,and how it can be used by a designer to alter a hierarchical schema. Inthis example, a designer selected a schema part entitled “element” (anelement 1002). Once chosen, the design application 126 prompts thedesigner, asking for information, such as through a change inquirywindow 1004. Using the window 1004, the design application 126 enablesthe designer to make various changes to the element 1002. He can change,for instance, the data type and default value allowed for the element1002 and its corresponding data-entry field in an electronic form.

Also as part of this example, the design application 126 presents thedesigner with the current name, type, and data type of a selected schemapart. The designer can then make changes by altering these currentparameters of the selected schema part, such as set forth in the changeinquiry window 1004 by changing the name to “myNewField” from “element”and the data type to “Text (string)” from “Whole Number (integer)”. Thedesign application 126 also enables the designer to make other changesto a schema part, such as whether or not it repeats, has a defaultvalue, or can be blank.

Also as part of the block 412, the design application 126 allows adesigner to alter components by adding to, deleting from, or otherwisechanging schema parts (whether they are schema parts governing orsubordinate to other schema parts or otherwise).

FIG. 10 shows an example of a pop-up window with which the designapplication 126 can enable a designer to alter schema parts. With analter window 1006, the designer can add or delete aspects of a schemapart, set a default value of the schema part, name the schema part, makeit repeating or not, and establish whether or not it is allowed to beblank. In addition to these data parameters, the design application 126can enable the designer to make other changes to a schema part, such asto how it is validated, its script, and other details.

As part of enabling the designer to makes these changes, the designapplication 126 makes appropriate changes to the structure of thehierarchical schema and electronic form. If the designer deletes acomponent, for instance, the design application 126 may delete the codecorresponding to the component from the hierarchical schema and theelectronic form.

Assume, for example, that the designer chose to delete a repeatingsection 804 from the electronic form shown in the design screen 800 ofFIG. 8. With this selection made, the design application 126 deletes a“repeating_item” schema part 816 and its subordinate string hierarchicalschema parts 818, 820, and 822 (entitled “string2”, “string3”, and“string4”) from the hierarchical schema. To do so the design application126 deletes the following code from the hierarchical schema:

<element name=“repeating_item”> <complexType> <sequence> <elementname=“string2” type=“string”/> <element name=“string3” type=“string”/><element name=“string4” type=“string”/> </complexType> </element></sequence> </complexType> </element>

Subsequent to this deletion, the design application 126 deletes thecomponent from the electronic form. In this example, the designapplication 126 deletes the repeating section 804 and its subordinaterepeating string data-entry fields: a repeating string data-entry field810 (labeled “String 2:”); a repeating string data-entry field 812(labeled “String 3:”); and a repeating string data-entry field 814(labeled “String 4:”). This deletion can be shown immediately in thedesign view of the electronic form in the design screen 800 by thedesign application 126. By immediately showing the deletion in theelectronic form and the hierarchical schema, the design application 126and the user interface 128 enable the designer to more easily andquickly customize the form to fit his or her preferences.

According to block 414, when finished, the end product is an electronicform and a corresponding hierarchical schema. The electronic formcreated can be a transformation-language document, and can be written inCSS, XSLT, or otherwise. Hierarchical schemas corresponding to theseelectronic forms can also be written in various languages, which will bedescribed in greater detail below.

One example of an electronic form created by the design application 126is the purchase order electronic form 202 viewed in the form-design area112 of FIG. 2. This electronic form 202, once finished and presented toan end user, can be used by that user to key in information intodata-entry fields. After entry of information, the information can bestored in a markup-language document, such as one written in XML. Theinformation stored can conform to a hierarchical schema corresponding tothe electronic form, thereby allowing easy use and/or transfer ofinformation stored in the markup-language document. The hierarchicalschema to which the markup-language document conforms can be written invarious languages, including schemas written to govern markup languages(such as XML). Schemas governing XML documents are commonly called XMLSchemas, DTD (Document Type Definition) schemas, and XDR (XML-DataReduced) schemas.

Thus, a designer not knowledgeable about transformation-languagedocuments (like an electronic form written in CSS), hierarchicalschemas, or programming can, easily and with no specialized skills,create an electronic form and corresponding hierarchical schema.

The design application 126 can even create electronic forms that areXSLT transformation-language documents, which is especially complex, andcorresponding hierarchical schemas that are XML schemas. In this case, adesigner having little knowledge about the XSLT language can create,using XSLT transformation-language components as an example, anelectronic form that is an XSLT transformation-language document and acorresponding hierarchical schema which is a schema capable of governingXML documents, such as XML Schema.

The hierarchical schema can be written in many languages, follow variousstandards, or be a set of tables in a database. Hierarchical schemas cando more than a linear or flat list; they can include, for example, aschema part that governs or contains another schema part thatcorresponds to a component of a different type than that of thegoverning schema part. Thus, these types of schemas can allow for agoverning schema part to correspond to a text box component, forinstance, and at the same time govern a Boolean component.

Hierarchical schemas can govern many different documents. Because ofthis, an electronic form relating to a hierarchical schema can havethousands of different users keying information into thousands ofdifferent documents, all of which can be governed by the onehierarchical schema.

Building a Hierarchical Schema

The system 100 enables a designer to incrementally build an electronicform and corresponding hierarchical schema.

Because the concept of structuring data hierarchically can be difficultfor designers to grasp easily and readily, but many users readilyunderstand structuring information spatially, the design application 126can enable users to incrementally create spatially structured electronicforms. These electronic forms are incrementally converted intohierarchically structured schemas, thus making it easier for a designerto create electronic forms that take advantage of hierarchicallystructured data.

The hierarchical aspect of the hierarchical schema allows it tocorrespond to many different types of structures and components in anelectronic form. A designer can, for instance, build an electronic formwith various structures, like repeating tables and lists. Theserepeating tables and lists are well suited to a hierarchical schemabecause of its hierarchical aspect.

A hierarchical schema is structured; in other words, some schema partsmay be governed or affected by other schema parts. With the exception ofevery schema part's subordination to the root schema part, which governsall other schema parts, each schema part may or may not be subordinateto another schema part. In the hierarchical schema display area 108 ofFIG. 2 for instance, the root schema part is the schema part labeled“PurchaseOrder”. The next six schema parts, “referenceNumber” to“chargeTo”, are subordinate to (or governed by) only the root schemapart, “PurchaseOrder”. Conversely, the six schema parts labeled “prefix”to “singleName” are also governed by the schema part labeled“deliveryTo”.

The design application 126 can build a hierarchical schemahierarchically. It can do so by receiving instructions from a designeras to how to build the hierarchical schema, including how to arrangeeach schema part as subordinate to or governing another. A designer can,for instance, instruct the design application 126 to make a particularcomponent subordinate to or govern other components. A designer can alsoinstruct the design application 126 to make a particular schema partsubordinate to or govern other schema parts. In either case, the designapplication 126 can build a hierarchical schema and electronic formbased on how components or schema parts govern or are subordinate toother components or schema parts. By enabling a designer to give thedesign application 126 instructions in various ways, including typed-ininstructions, clicking on icons, and dragging and dropping icons forschema parts or components, the designer's experience can be made easyand intuitive.

Some of the ways the design application 126 can receive instructions asto how to build an electronic form and hierarchical schemahierarchically can include ways in which a designer will not need toknow how or even that a hierarchical schema is being built. Manydesigners may not understand hierarchical schemas, or may just want tobuild a hierarchical schema (and, typically, an electronic form) in aneasy, graphical, and intuitive manner.

FIG. 11 shows a process 1100 by which the design application 126 enablesa designer to give instructions graphically and, using the instructions,determine a governance or subordination of schema parts in ahierarchical schema. As set forth in block 1102, the design application126 enables a designer to give instructions graphically. In this way, adesigner can give instructions (like placing a component in a particularlocation of the form-design area 112) to the design application 126 fromwhich it can infer how the designer wishes a hierarchical schema to bebuilt.

The design application 126 enables a designer to input his or herpreference for a component to be subordinate and/or governing, such asby placing a component's icon or a mouse-pointer beneath, below, within,or otherwise relative to another, existing component (whether when firstplaced or later moved). To aid the designer to give the designer'sintended input to the design application 126, it enables a designer tosee how each component is governed by or subordinate to othercomponents. The design application 126, in one implementation, displayssubordination areas to graphically indicate which components govern orare subordinate to others. Some of these components inherently containother components, and so are shown with subordination areas containingdata-entry fields in the display area 112; some are altered by thedesigner to contain other components.

In FIG. 12, for example, an exemplary design screen 1200 shows how thedesign application 126 can enable a designer to place componentssubordinate to and/or governing other components by placing them inparticular places in the design screen 1200, FIG. 12 shows subordinationareas marked by boxes, into which a designer can place a component to besubordinate to another component. If the designer places a componentoutside all subordination areas, the component will be governed by onlythe root schema part. These subordination areas show components assubordinate or governing in the electronic form and hierarchical schema.

In this example, a product schema part 1202 is shown to be subordinategoverned by) the “productSection” schema part 1204 by the product schemapart's 1202 corresponding product component 1206 being within aproductSection box 1208 marked with a tab entitled “Section”. Also inthis example, a company schema part 1210 is shown to be governed by acompanySection schema part 1212 and the productSection schema part 1204by the company schema part's 210 company component 1214 being within acompanySection box 1216 marked with a tab entitled “Section”.

Thus, the company schema part 1210 is governed by two schema parts (1212and 1204) as well as the root schema part 1218 entitled “form”.Continuing this example, a website component 1220 and its schema part1222 are shown to be governed by the companySection schema part 1212(through the component being within the companySection box 1216), theproductSection schema part 1204, and the root schema part 1218.Likewise, a street component 1224 and its schema part 1226, a citycomponent 1228 and its schema part 1230 and a state component 1232 andits schema part 1234 are shown to be governed by an addressSectionschema part 1236, the companySection schema part 1212, theproductSection schema part 1204, and the root schema part 1218.

Thus, the design application 126 can show a designer which componentsgovern or are subordinate to other components. Similarly, the designapplication 126 can infer, in some implementations, which componentsgovern or are subordinate to other components based upon where acomponent is placed by a designer relative to another component, such asby a designer placing a component within a subordination area, e.g., theproduct section box 1208.

At block 1104, the design application 126 determines to which othercomponent(s) a placed or moved component is graphically subordinate. Itcan determine, for example, that the company component 1214 and thewebsite component 1220 are subordinate to the companySection schema part1212 through being within the companySection box 1216. With thisdetermination, the design application 126 builds the hierarchical schemato represent this subordination (block 1106). The design application 126can determine this incrementally, such as when a component is added ormoved into a subordination area.

The design application 126 adds or rearranges schema parts to representeach component's relationship to the other components. Continuing theabove example, for the relationship between the components in theform-design area 112 of FIG. 12, the design application 126 builds ahierarchical schema that corresponds to the form-design area 112, setforth in the hierarchical schema display area 108, also of FIG. 12. Thehierarchical schema display area 108, for example, includes the rootschema part 1218, though no corresponding component/box is shown in theform-design area 112.

The hierarchical schema displayed in hierarchical schema display area108 includes schema parts corresponding to components and reflecting therelationships between the components in the form-design area 112. Itshows here that the product schema part 1202 and the website schema part1222 correspond to the product component 1206 and the website component1220. The hierarchical schema display area 108 shows that thesecomponents and their corresponding schema parts (1202 and 1222) aresubordinate to schema parts 1204 and 1218.

The design application 126 builds this hierarchical structure into thehierarchical schema by subordinating schema parts to other schema parts.Lastly, the design application 126 can build the hierarchical schema toshow that schema parts are subordinate to other parts by being placed tothe right of those schema parts.

The example set forth in FIG. 12 shows various types of components andschema parts, but is not intended to limit the abilities of the designapplication 126, the user interface 128, or the system 100; other typesof components and ways to present them can be used.

A Computer System

FIG. 13 shows an exemplary computer system that can be used to implementthe processes described herein. Computer 1342 includes one or moreprocessors or processing units 1344, a system memory 1346, and a bus1348 that couples various system components including the system memory1346 to processors 1344. The bus 1348 represents one or more of any ofseveral types of bus structures, including a memory bus or memorycontroller, a peripheral bus, an accelerated graphics port, and aprocessor or local bus using any of a variety of bus architectures. Thesystem memory 1346 includes read only memory (ROM) 1350 and randomaccess memory (RAM) 1352. A basic input/output system (BIOS) 1354,containing the basic routines that help to transfer information betweenelements within computer 1342, such as during start-up, is stored in ROM1350.

Computer 1342 further includes a hard disk drive 1356 for reading fromand writing to a hard disk (not shown), a magnetic disk drive 1358 forreading from and writing to a removable magnetic disk 1360, and anoptical disk drive 1362 for reading from or writing to a removableoptical disk 1364 such as a CD ROM or other optical media. The hard diskdrive 1356, magnetic disk drive 1358, and optical disk drive 1362 areconnected to the bus 1348 by an SCSI interface 1366 or some otherappropriate interface. The drives and their associated computer-readablemedia provide nonvolatile storage of computer-readable instructions,data structures, program modules and other data for computer 1342.Although the exemplary environment described herein employs a hard disk,a removable magnetic disk 1360 and a removable optical disk 1364, itshould be appreciated by those skilled in the art that other types ofcomputer-readable media which can store data that is accessible by acomputer, such as magnetic cassettes, flash memory cards, digital videodisks, random access memories (RAMs), read only memories (ROMs), and thelike, may also be used in the exemplary operating environment.

A number of program modules may be stored on the hard disk 1356,magnetic disk 1360, optical disk 1364, ROM 1350, or RAM 1352, includingan operating system 1370, one or more application programs 1372 (such asa design application), other program modules 1374, and program data1376. A user may enter commands and information into computer 1342through input devices such as a keyboard 1378 and a pointing device1380. Other input devices (not shown) may include a microphone,joystick, game pad, satellite dish, scanner, or the like. These andother input devices are connected to the processing unit 1344 through aninterface 1382 that is coupled to the bus 1348. A monitor 1384 or othertype of display device is also connected to the bus 1348 via aninterface, such as a video adapter 1386. In addition to the monitor,personal computers typically include other peripheral output devices(not shown) such as speakers and printers.

Computer 1342 commonly operates in a networked environment using logicalconnections to one or more remote computers, such as a remote computer1388. The remote computer 1388 may be another personal computer, aserver, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to computer 1342. The logical connections depicted in FIG. 13include a local area network (LAN) 1390 and a wide area network (WAN)1392. Such networking environments are commonplace in offices,enterprise-wide computer networks, intranets, and the Internet.

When used in a LAN networking environment, computer 1342 is connected tothe local network through a network interface or adapter 1394. When usedin a WAN networking environment, computer 1342 typically includes amodem 1396 or other means for establishing communications over the widearea network 1392, such as the Internet. The modem 1396, which may beinternal or external, is connected to the bus 1348 via a serial portinterface 1368. In a networked environment, program modules depictedrelative to the personal computer 1342, or portions thereof, may bestored in the remote memory storage device. It will be appreciated thatthe network connections shown are exemplary and other means ofestablishing a communications link between the computers may be used.

Generally, the data processors of computer 1342 are programmed by meansof instructions stored at different times in the variouscomputer-readable storage media of the computer. Programs and operatingsystems are typically distributed, for example, on floppy disks orCD-ROMs. From there, they are installed or loaded into the secondarymemory of a computer. At execution, they are loaded at least partiallyinto the computer's primary electronic memory. The system describedherein includes these and other various types of computer-readablestorage media when such media contain instructions or programs forimplementing the blocks described, in conjunction with a microprocessoror other data processor. The system described can also include thecomputer itself when programmed according to the methods and techniquesdescribed herein.

For purposes of illustration, programs and other executable programcomponents such as the operating system are illustrated herein asdiscrete blocks, although it is recognized that such programs andcomponents reside at various times in different storage components ofthe computer, and are executed by the data processor(s) of the computer.

CONCLUSION

The above-described system and method enables a designer to easily andincrementally create electronic forms and corresponding hierarchicalschemas, even if the designer has only basic skills. The above-describedsystem and method also allows a designer to create, with the click of amouse, electronic forms written in XSLT and hierarchical schemas writtenin XML Schema. In addition, the above system and method enables adesigner to view changes he is making in real-time to an electronic formand hierarchical schema. Although the system and method has beendescribed in language specific to structural features and/ormethodological acts, it is to be understood that the system and methoddefined in the appended claims is not necessarily limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as exemplary forms of implementing the claimed systemand method.

The invention claimed is:
 1. A method comprising: displaying anelectronic form in a form-design area, the electronic form including anexisting component, the existing component having a data-entry field;displaying, in a hierarchical schema display area, a firstrepresentation of a hierarchical schema, the hierarchical schemacorresponding to the electronic form and having XML code; receiving aninput through a graphical user interface to add a new component at alocation in the form-design area; responsive to receiving the input:inferring as follows: if the location is within a subordination area ofthe existing component, that the new component is subordinate to theexisting component; if the location is below the existing component,that the new component is subordinate to the existing component; or ifthe location is above the existing component, that the new componentgoverns the existing component; incrementally changing both XSLT codeused to display the electronic form and the hierarchical schema toreflect the received new component, the incrementally changing asfollows: if the location is below the existing component, as beingsubordinate to the existing component and altering an existing XMLschema part associated with the existing component to include, assubordinate, a new schema part associated with the new component-to besubordinate to the existing XML schema part; if the location is withinthe subordination area, as being subordinate to the existing componentand altering the existing XML schema part associated with the existingcomponent to include, as subordinate, the new schema part associatedwith the new component to be subordinate to the existing XML schemapart; or if the location is above the existing component, as governingthe existing component and altering the existing XML schema partassociated with the existing component to to be subordinate to the newschema part; and displaying, in the hierarchical schema display area, asecond representation of the hierarchical schema, the secondrepresentation showing as follows: if the location is below the existingcomponent, the new schema part associated with the new component to besubordinate to the existing XML schema part; if the location is withinthe subordination area of the existing component, the new schema partassociated with the new component to be subordinate to the existing XMLschema part; or if the location is above the existing component,altering the existing XML schema part to be subordinate to the newschema part.
 2. The method of claim 1, further comprising receiving asecond input to alter a style of the existing component or the newcomponent and incrementally changing the style of the existing componentor the new component in the form-design area.
 3. The method of claim 1,further comprising receiving a second input to alter the existingcomponent or the new component by moving the existing component or thenew component within the form-design area and incrementally changingresponsive to only the moving of the existing component or the newcomponent.
 4. The method of claim 3, wherein the act of incrementallychanging responsive to only the moving of the existing component or thenew component makes the existing component or the new componentsubordinate to another component in the electronic form.
 5. The methodof claim 1, wherein incrementally changing is performed in part bylinking the electronic form and the corresponding hierarchical schema.6. The method of claim 1, wherein the input is received through aselection made to a screen in which a list of one or more components isprovided.
 7. The method of claim 1, wherein the input is receivedthrough a selection made to the first representation of thecorresponding hierarchical schema.
 8. A method comprising: enablingplacement, through a graphical user interface, of a first component on aform-design area, the first component representing a first data-entryfield governed by a first XML schema part and the form-design areadisplaying an electronic form having a second component representing asecond data-entry field that is an XSLT transformation of a second XMLschema part; inferring, inferring as follows: if a location for thefirst component on the form-design area is beneath the second component,that the first component is subordinate to the second component; if thelocation for the first component on the form-design area is within thesecond component, that the first component is subordinate to the secondcomponent; or if the location for the first component on the form-designarea is above the second component, that the first component governs thesecond component; altering a hierarchical schema governing theelectronic form to include the first XML schema part corresponding tothe first component, the altering as follows: if the location for thefirst component on the form-design area is below the second component,subordinating the first XML schema part to the second XML schema part;if the location for the first component on the form-design area iswithin the second component, subordinating the first XML schema part tothe second XML schema part; or if the location for the first componenton the form-design area is above the second component, subordinating thesecond XML schema part to the first XML schema part; and displaying, ina hierarchical schema display area, a representation of the hierarchicalschema governing the electronic form, the representation showing asfollows: if the location for the first component on the form-design areais below the second component, the subordinating of the first XML schemapart to the second XML schema part; if the location for the firstcomponent on the form-design area is within the second component, thesubordinating of the first XML schema part to the second XML schemapart; or if the location for the first component on the form-design areais above the second component, the subordinating of the second XMLschema part to the first XML schema part.
 9. The method of claim 8,further comprising: displaying, in the electronic form on theform-design area, the first data-entry field as subordinate to thesecond data-entry field.
 10. The method of claim 8, further comprising:displaying, in the electronic form on the form-design area, the seconddata-entry field as subordinate to the first data-entry field.
 11. Themethod of claim 8, wherein the act of enabling placement comprisesenabling placement of the first component within the subordination areaand beneath the second component.